package com.spring.sjlong.util;


import com.alibaba.fastjson.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.util.List;

/**
 * 结果返回类
 */
public abstract class ResultJsonUtil {
    private static final Logger LOGGER = LoggerFactory.getLogger(ResultJsonUtil.class);

    public static final String STATUS = "status";
    public static final String MSG = "msg";
    public static final String DATA = "data";
    public static final String COUNT = "count";

    /**
     * 返回一个JSON对象，主要用在服务求之后获取的数据转成一个json对象
     *
     * @param resultStatus 状态
     * @param resultMessage 信息
     * @param resultList 集合数据
     * @return
     */
    public static JSONObject convertResultJSONList(String resultStatus, String resultMessage, List<?> resultList) {
        JSONObject json = new JSONObject();
        json.put(STATUS, resultStatus);
        json.put(MSG, resultMessage);
        json.put(DATA, resultList);
        json.put(COUNT, resultList.size());
        LOGGER.info("返回结果：{}",json.toJSONString());
        return json;
    }

    /**
     * 返回一个JSON对象，主要用在服务求之后获取的数据转成一个json对象
     *
     * @param resultStatus 状态
     * @param resultMessage 信息
     * @param resultData 数据
     * @return
     */
    public static JSONObject convertResultJSONObject(String resultStatus, String resultMessage, Object resultData) {
        JSONObject json = new JSONObject();
        json.put(STATUS, resultStatus);
        json.put(MSG, resultMessage);
        json.put(DATA, resultData);
        json.put(COUNT, null == resultData ? 0 : 1);
        LOGGER.info("返回结果：{}",json.toJSONString());
        return json;
    }
}
